1. Field of the Invention
The present invention relates to a receiver for receiving FM multiplex broadcasting, and more particularly, to an FM multiplex broadcast signals receiver for receiving digital data multiplexed on FM multiplex broadcasting and transmitted from a broadcasting station.
2. Description of the Background Art
In FM multiplex broadcasting, digital information indicating characters, graphics or the like is multiplexed on FM broadcast signal. A receiver for FM multiplex broadcasting utilizes data and clock signal reproduced from multiplexed signals.
FIGS. 9, 10, and 11 respectively show a packet structure, a frame structure, and offset of synchronism.
With reference to FIG. 9, data has a packet structure for each block. The packet has a prescribed block identifying code (BIC) referred to as a block synchronization code, information bits, and a check code. The data packets respectively having block numbers 1-272 constitute one frame as shown in FIG. 10. Error correction is made packet by packet (horizontal correction) and frame by frame (vertical and horizontal correction). The receiver extracts a BIC pattern from a received data train and determines the division between blocks. Establishment of block synchronism is determined when the BIC pattern is detected a plurality of times, and a state in which synchronism is not achieved (out of synchronism) is determined if the BIC pattern is not detected a plurality of times. In the out of synchronism state, the establishment of synchronism of blocks is determined by detecting the BIC a prescribed number of times (number of backward protection of block synchronism) at an interval of one packet (at the timing of BIC detection generated by an internal BIC detection timing counter). This operation is referred to as block synchronism backward protection. When block synchronism is established, the out of synchronism state is determined by not detecting the BIC a prescribed number of times (number of forward protection of block synchronism) consecutively at an interval of one packet (BIC detection timing). This operation is referred to as block synchronism forward protection.
Referring to FIG. 10, 272 packets constituting a frame respectively have BICs corresponding to block numbers allotted. At four points in one frame, namely block numbers 1, 14, 137 and 150, points at which BIC changes (BIC change points) are provided. The block number can be specified by the BIC change point. Whether frame synchronism is established or not is determined by detecting or not detecting a plurality of BIC change points. In the out of synchronism state, establishment of frame synchronism is determined by detecting a prescribed number of BIC change points (number of backward protection of frame synchronism) consecutively at BIC change point detection timing (frame synchronism backward protection). When frame synchronism is established, if a prescribed number of BIC change points (number of forward protection of frame synchronism) are not consecutively detected at the BIC change point detection timing, the out of frame synchronism state is determined (frame synchronism forward protection).
There are two methods of determining packet type (i.e. data packet or parity packet). One method uses the BIC pattern extracted from received data and determines whether the BIC pattern is a data packet (BIC1-3) or a parity packet (BIC4). The other method uses a value of the receiver's block counter for frame and determines the packet type.
While frame synchronism is established, the block number of received data is synchronized with the block counter for frame of the receiver. However, the block number of received data may not be synchronized with the block counter for frame of the receiver due to the out of synchronism state of blocks caused by noise or the like, or false synchronism of blocks. For example, block synchronism may be lost if receiving conditions are deteriorated due to decreased intensity of the electric field or due to noise caused by multipath fading during frame synchronism state. When block synchronism is not established, the receiver carries out backward protection process of block synchronism, and extracts BIC patterns from a received data train. There may possibly be a data train which has the same bit pattern as BIC's. Further, a bit pattern that is the same as the BIC's may be generated more often than the number of backward protection of block synchronism at a packet period corresponding to the BIC detection timing. In such a case, false block synchronism may occur in which block synchronism is established at a timing other than the normal BIC detection timing.
Distinguished from regularly added normal BICs, a bit pattern which is the same as the BIC's that caused false block synchronism is unintentionally produced. Such false block synchronism is prevented by the aforementioned forward protection of block synchronism mechanism. In other words, a BIC pattern detection fails, out a block of synchronism state occurs, and eventually normal block synchronism would be established.
The receiver's "block counter for frame" counts received data packet by packet for each frame. The counter increments the count following a packet timing signal (dummy timing signal) produced by the receiver when the block synchronism is not established. The block counting operation switches to counting received packets once block synchronism is established. At the time of the switching, a "synchronization process" for the block counting operation is carried out. The synchronization process refers to an operation in which a difference between the packet timing generated by the receiver (receiver CPU) and the packet timing based on received data is corrected. For example, if block synchronism is established immediately after a counter increment operation from a packet timing signal generated by the receiver and counting should be performed based on received packets, the block counting is not based on received packets. On the other hand, if block synchronism is established immediately before a counter increment operation from a packet timing signal generated by the receiver and counting should be performed based on a received packet, then the block counting operation is carried out based on the received packets.
The above synchronization processing of the counting operation is effective when normal block synchronization is achieved. However, if the false block synchronization occurs, counting operation may be carried out at a timing which is not actually required, and the counting operation may not be carried out at the timing actually required. As a result, offset of synchronism occurs between the block number of received data and the block counter for frame of the receiver. When such offset of synchronism state occurs, BIC change points of received data cannot be detected at BIC change point detection timing generated by the block counter for frame. At this time, forward protection process of frame synchronism is performed, resulting in the out of frame synchronism state. As a result, the resynchronizing process mode of frame synchronism starts and synchronism is newly detected. During the period of forward protection, approximately two frames (about 10 seconds: about 380 data packets) are processed as data in frame synchronization, if the number of forward protection is 8.
Assume that the packet type is determined from the value of the block counter for frame of the receiver. If, at that time, offset of synchronization between the block number of received data and count value of the block counter for frame is 1 or 2 packets, about 164 parity packets would be determined erroneously as data packets and the same number of data packets would be determined erroneously as parity packets. The data in the data packets determined as parity packets are not used for creating a program. On the other hand, the parity packets are processed as normal data packets.
A problem caused in this situation is as follows. The parity packets regarded as data packets are combined with normal data packets and used for creating a program. When an error is detected by parity check for the program, the parity packets are discarded with data in the normal data packets. In this case, regular data is also discarded, so that data must be received again. On the other hand, if an error is not detected, the corresponding program could be improperly displayed.
Uncompleted data for a program is left in a program editing buffer or a receiving buffer as trash data. In this case, the available area in those buffers is decreased. As a result, efficiency in processing normal data, as well as efficiency in creating a program are impaired. In the worst case, the buffer fills with the trash data, a new program cannot be created, and reception becomes impossible. Such improper conditions would continue to have an affect even after normal frame synchronism is established by resynchronizing process of frame synchronism.